#include <iostream>
using namespace std;

int A1[55][55][55],A2[55][55],A3[55][55];
void division_1(){
	for(int k=2; k<55; k++){
		for(int n=0; n<55; n++)
			for(int m=0; m<55; m++){
				for( int i=1; i<=m; i++)
					if( n-i >= 0 ) A1[k][n][m] += A1[k-1][n-i][i];
			}
	}
}
void division_2(){
	for(int m=1; m<55; m++){
		for(int n=0; n<55; n++)
			for(int i=1; i<=m; i++)
				if( n-i >=0 ) A2[n][m] += A2[n-i][i-1];
	}
}
void division_3(){
	for(int m=1; m<55; m++){
		for(int n=0; n<55; n++)
			for(int i=1; i<=m; i+=2)
				if( n-i >=0 ) A3[n][m] += A3[n-i][i];
	}
}
int main(){
	freopen("in.txt","r",stdin);
	int n,k;
	for(int i=0; i<55; i++){
		for(int j=0; j<55; j++){
			if( i<=j ) A1[1][i][j] = 1;
			else A1[1][i][j] = 0;
			A1[i][0][j] = 0;
		}
	}
	division_1();
	for(int i=0; i<55; i++){
		A2[i][0] = 0;
		A2[0][i] = 1;
	}
	division_2();
	for(int i=0; i<55; i++){
		A3[i][0] = 0;
		A3[0][i] = 1;
	}
	division_3();
	while( cin >> n >> k ){
		printf("%d\n%d\n%d\n",A1[k][n][n],A2[n][n],A3[n][n]);
	}
	return 0;
}
